package com.njiandan.johnson.vr360;

import android.content.Context;
import android.util.TypedValue;

/**
 * author：johnsonZhang on 2017/3/29 18:37
 * email：15915356@qq.com
 * Class desc:
 * 尺寸工具箱，提供与Android尺寸相关的工具方法
 */
public class DimenUtils {

    private DimenUtils() {
        throw new UnsupportedOperationException("cannot be instantiated");
    }

    /**
     * dp单位转换为px
     */
    public static int dp2px(Context context, float dpValue) {
        return (int) (dpValue * (context.getResources().getDisplayMetrics().density) + 0.5f);
    }

    /**
     * px单位转换为dp
     */
    public static int px2dp(Context context, float pxValue) {
        return (int) (pxValue / (context.getResources().getDisplayMetrics().density) + 0.5f);
    }

    /**
     * sp单位转换为px
     */
    public static int sp2px(Context context, float spVal) {
        if (context == null) {
            return -1;
        }
        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
                spVal, context.getResources().getDisplayMetrics());
    }

    /**
     * px单位转换为sp
     */
    public static float px2sp(Context context, float pxVal) {
        if (context == null) {
            return -1;
        }
        return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
    }

}